package io.github.talelin.latticy.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import io.github.talelin.latticy.common.enumeration.FeesBizTypeEnum;
import io.github.talelin.latticy.dto.rule.chargeItem.ChargeItemDTO;
import io.github.talelin.latticy.dto.rule.chargeItem.ChargePlanItemsDTO;
import io.github.talelin.latticy.dto.rule.chargeItem.UpdateChargeItemDTO;
import io.github.talelin.latticy.model.ChargeItemDO;
import com.baomidou.mybatisplus.extension.service.IService;
import io.github.talelin.latticy.model.RuleKeyDO;
import io.github.talelin.latticy.vo.ChargeItemVO;

import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author generator@wulongbo
 * @since 2022-08-23
 */
public interface ChargeItemService extends IService<ChargeItemDO> {

    boolean addChargeItem(ChargeItemDTO dto);

    boolean updateChargeItemById(UpdateChargeItemDTO dto, Integer id);

    boolean deleteChargeItemById(Integer id);

    ChargeItemVO getChargeItemVOById(Integer id);

    List<ChargeItemDO> getChargeItemList(Integer feesBizType);

    IPage<ChargeItemDO> getChargeItemPageByFeesBizType(Integer page, Integer count, String name,
                                                       Integer level, Integer billType, Integer feesBizType);

    List<ChargePlanItemsDTO> getItemsByChargePlanById(Integer id);
}
